package com.tzpay.tzpay.common;

import java.lang.ref.WeakReference;

/**
 * chenfeiyue
 *
 * @param <T>
 */
public abstract class BaseRunnable<T> implements Runnable {
    private WeakReference<T> ref;

    /**
     * 构造方法。
     *
     * @param t Handler所在的对象。
     */
    public BaseRunnable(T t) {
        ref = new WeakReference<T>(t);
    }


    @Override
    public final void run() {
        if (ref == null) {
            return;
        }
        T t = ref.get();
        if (t == null) {
            return;
        }
        onRun(t);
    }

    public abstract void onRun(T t);
}
